home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / kowin / archive / apl / gview120.lzh / gviewsrc.lzh / palet.c < prev    next >
C/C++ Source or Header  |  1995-02-13  |  1KB  |  70 lines

  1. /*
  2.     Copyright 1995 Ogasawara Hiroyuki(COR.)
  3. */
  4.  
  5. #include    <corlib.h>
  6. #include    <sys_doslib.h>
  7. #include    "gview.h"
  8.  
  9. GV_PaletSize( mode )
  10. {
  11.     switch( mode ){
  12.     case WindowAttrGraphic16:
  13.         return    16;
  14.     case WindowAttrGraphic256:
  15.         return    256;
  16.     }
  17.     return    0;
  18. }
  19.  
  20. void
  21. GV_BaseToPalet( gp )
  22. GVIEW    *gp;
  23. {
  24.     if( gp->color != WindowAttrGraphic65536 ){
  25.         int    i, len= GV_PaletSize( gp->color );
  26.         unsigned short    *pal= gp->palet;
  27.         unsigned char    *bpal= gp->base_palet;
  28.         for( i= 0 ; i< len ; i++ ){
  29.             unsigned short    p;
  30.             p= ((*bpal++<<8) & 0xf800);
  31.             p+=((*bpal++<<3) & 0x07c0);
  32.             p+=((*bpal++>>2) & 0x003e);
  33.             *pal++= p;
  34.         }
  35.     }
  36. }
  37.  
  38. void
  39. GV_PaletToBase( gp )
  40. GVIEW    *gp;
  41. {
  42.     if( gp->color != WindowAttrGraphic65536 ){
  43.         int    i, len= GV_PaletSize( gp->color );
  44.         unsigned short    *pal= gp->palet;
  45.         unsigned char    *bpal= gp->base_palet;
  46.         for( i= 0 ; i< len ; i++ ){
  47.             unsigned short    p= *pal++;
  48.             if( p ){
  49.                 *bpal++= ((p&0xf800)>>8)+7;
  50.                 *bpal++= ((p&0x07c0)>>3)+7;
  51.                 *bpal++= ((p&0x003e)<<2)+7;
  52.             }else{
  53.                 *bpal++= 0;
  54.                 *bpal++= 0;
  55.                 *bpal++= 0;
  56.             }
  57.         }
  58.     }
  59. }
  60.  
  61. void
  62. GV_GetSysPalet( gp )
  63. GVIEW    *gp;
  64. {
  65.     int    i, size= GV_PaletSize( gp->color );
  66.     unsigned short    *ptr= gp->palet;
  67.     for( i= 0 ; i< size ; i++ )
  68.         *ptr++= GPALET( i, -1 );
  69. }
  70.